The rapid expansion of information service and data processing industries has resulted in a need for computer systems to manage and store large amounts of data. As an example, financial service industry organizations such as banks, mutual fund companies or the like often operate large and complex data processing systems that require access to many hundreds of gigabytes or even terabytes of data. Computer system developers have responded to these types of data storage and information sharing requirements by crating large complex networks that store data. An example of a network that stores data is referred to as a storage area network or SAN. A typical SAN is a collection of data storage systems that are networked with a number of host computer systems that operate as servers to access data stored in the data storage systems. Other types of networks include wide are networks such as the Internet and local area network such as smaller corporate networks.
Using a SAN as an example network, elements of a typical conventional storage area network implementation include one or more connectivity devices such as high speed data switches or routers that interconnect the various data storage systems to each other and to one or more host or server computer systems (servers) that require access to (e.g., read and/or write) the data in the data storage systems on behalf of client software applications and/or client computer systems.
A developer or manager of such a network environment may install one or more distributed network management software applications within host computers in the network to manage or administer the various resources (i.e., devices, host computer systems, storage systems, applications, etc.) that operate within the network. A network manager (i.e., a person) responsible for management of the network operates the network management software application(s) to perform management tasks such as performance monitoring, network analysis and remote configuration and administration of the various components (i.e., software and hardware resources) operating within the network.
A conventional network management software application may have several different software components that execute independently of each other on different computer systems but that collectively interoperate together to perform network management. As an example, conventional designs of storage area network management software applications can include a management station programs such as console and server processes, several agent processes that operate on remote host computers, store process and possibly other software processes.
Generally, the server process operates as a central control process within the storage area network management application and coordinates communication between the console, storage and agent processes. The console process often executes within a dedicated network management workstation to allow a network administrator to visualize and remotely control and manage the various elements within the storage area network that are graphically represented on an interface presented by the console. The console allows the administrator to, for example, issue a command to an agent operating on a host computer within the network being managed. Agent processes execute on various host computer systems such as servers within the storage area network to manage storage area network entities (i.e., managed resources such as devices). As an example, there may be different respective agent programs specifically designed (e.g., coded) to remotely manage and control certain vendor-specific data storage systems, databases, switches, and so forth.
Agent processes receive remote management commands from the server process and apply functionality associated with those management commands to the managed resources within the storage area network for which those agents are designated to manage. Agents may receive a command, for example, to collect or discover configuration or management data concerning the network resources that those agents manage. This device discovery data collection process can happen in a scheduled or periodic manner, or in response to a command received from the management server. When agents are finished processing a command, results are returned to the store process for storage within a database. The server can then access the database to view the results of the command sent to the agent process.